package com.itjiange.mapper;

import com.itjiange.model.dto.UserQueryDto;
import com.itjiange.model.dto.UserRequestDto;
import com.itjiange.model.dto.UserUpdateDto;
import com.itjiange.model.pojo.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
* @author 大师的本
* @description 针对表【user】的数据库操作Mapper
* @createDate 2023-10-27 15:32:00
* @Entity generator.model.pojo.User
*/
@Mapper
public interface UserMapper {
    /**
     * 根据用户名查询用户信息
     *
     * @param userAccount
     * @param userPassword
     * @return
     */
    User getUserByNameOrPass(String userAccount, String userPassword);

    /**
     * 根据用户 id 查询用户信息
     * @param userId
     * @return
     */
    User getUserById(int userId);

    /**
     * 将用户请求信息存入数据库
     * @param userRequestDto
     * @return
     */
    int insertUser(UserRequestDto userRequestDto);

    /**
     * 根据用户请求信息修改数据库中数据
     * @param userRequestDto
     * @return
     */
    int updateUser(UserUpdateDto userUpdateDto);

    /**
     * 查询所有用户信息
     * @return
     */
    List<User> getAllUser();

    /**
     * 删除用户信息
     * @param id
     * @return
     */
    int deleteById(int id);

    /**
     * 分页查询用户信息
     * @param pageNo 第几页
     * @param pageSize 一页显示几条数据
     * @return
     */
    List<User> getUsersByPage(int pageNo, int pageSize);

    /**
     * 查询所有数据总数
     * @return
     */
    int getAllUsersCount();

    /**
     * 条件查询
     * @return
     */
    List<User> getUserByCondition(UserQueryDto userQueryDto);
}